package com.freight.order.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.freight.user.vo.*;
import com.freight.user.vo.VehicleInfoVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;


@Data
public class OrderVo extends OrderGoodsVo {

    @ApiModelProperty(value = "地址围栏 0关闭 1打开")
    private String addressFence;

    @ApiModelProperty(value = "所有人名称")
    private String vehicleOwner;

    @ApiModelProperty(value = "预计装货经度")
    private Double beginLng;

    @ApiModelProperty(value = "预计装货纬度")
    private Double beginLat;

    @ApiModelProperty(value = "预计卸货经度")
    private Double endLng;

    @ApiModelProperty(value = "预计卸货纬度")
    private Double endLat;

    @ApiModelProperty(value = "实际装货地址经度")
    private Double actualBeginLng;

    @ApiModelProperty(value = "实际装货地址纬度")
    private Double actualBeginLat;

    @ApiModelProperty(value = "实际卸货经度")
    private Double actualEndLng;

    @ApiModelProperty(value = "实际卸货纬度")
    private Double actualEndLat;

    @ApiModelProperty(value = "运单号")
    private String orderNo;

    @ApiModelProperty(value = "运单id")
    private Long id;

    @ApiModelProperty(value = "提货单图片id")
    private String deliveryOrderPicId;

    @ApiModelProperty(value = "回单图片id")
    private String receiptOrderPicId;

    @ApiModelProperty(value = "运单状态")
    private Integer orderState;

    @ApiModelProperty(value = "运单状态原因")
    private String orderStateDesc;

    @ApiModelProperty(value = "司机userid")
    private Long driverUserId;

    @ApiModelProperty(value = "与订单绑定的车辆id")
    private Long vehicleId;

    @ApiModelProperty(value = "与订单绑定的车辆车牌号")
    private String vehicleNum;

    @ApiModelProperty(value = "运费单价")
    private BigDecimal driverUnitPrice;

    @ApiModelProperty(value = "司机运费总价")
    private BigDecimal driverTotalPrice;

    @ApiModelProperty(value = "剩余重量")
    private Double surplusWeight;

    @ApiModelProperty(value = "发布重量")
    private Double totalGoodWeight;

    @ApiModelProperty(value = "运载重量")
    private Double transGoodWeight;

    @ApiModelProperty(value = "卸货重量")
    private Double realGoodWeight;

    @ApiModelProperty(value = "运单来源 1自主抢单  2平台派单 ")
    private String orderSource;

    @ApiModelProperty(value = "货主信息")
    private CompanyInfoVo companyInfoVo;

    @ApiModelProperty(value = "司机信息")
    private DriverInfoVo driverInfoVo;

    @ApiModelProperty(value = "车辆信息")
    private VehicleInfoVo vehicleInfoVo;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "接单时间")
    private Date orderReceivingDate;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际装货时间")
    private Date loadingTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际卸货时间")
    private Date dischargeTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "预计装货时间")
    private Date estimateLoadingTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "预计卸货时间")
    private Date estimateDischargeTime;

}